# 模块概览
process是node的全局模块,作用比较直观。可以通过它来获得node进程相关的信息,比如运行node程序时的命令行参数。或者设置进程相关信息,比如设置环境变量。
# 环境变量:process.env
使用频率很高,node服务运行时,时常会判断当前服务运行的环境,如下所示
if(process.env.NODE_ENV === 'production'){
console.log('生产环境');
}else{
console.log('非生产环境');
}
@前端进阶之旅: 代码已经复制到剪贴板
运行命令 NODE_ENV=production node env.js,输出如下
非生产环境
@前端进阶之旅: 代码已经复制到剪贴板
# 异步:process.nextTick(fn)
使用频率同样很高,通常用在异步的场景,来个简单的栗子:
console.log('海贼王');
process.nextTick(function(){
console.log('火影忍者');
});
console.log('死神');
// 输出如下
// 海贼王
// 死神
// 火影忍者
@前端进阶之旅: 代码已经复制到剪贴板
process.nextTick(fn) 咋看跟 setTimeout(fn, 0) 很像,但实际有实现及性能上的差异,我们先记住几个点:
- process.nextTick(fn) 将 fn 放到 node 事件循环的 下一个tick 里;
- process.nextTick(fn) 比 setTimetout(fn, 0) 性能高;
这里不打算深入讨论,感兴趣的可以点击这里进行了解。
# 获取命令行参数:process.argv
process.argv 返回一个数组,数组元素分别如下:
- 元素1:node
- 元素2:可执行文件的绝对路径
- 元素x:其他,比如参数等
// print process.argv
process.argv.forEach